import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import mutations from './mutations'

Vue.use(Vuex)

export default new Vuex.Store({
  state,
  mutations
})
 

/*拆分state
********************************************
//如果用户关闭了本地存储和隐身模式，localStorage就无法正常使用
//try...catch 可以测试代码中的错误。try 部分包含需要运行的代码，而 catch 部分包含错误发生时运行的代码
let defaultcity='上海'
try{
  if(localStorage.city){
    defaultcity=localStorage.city
  }
}catch(e){}

export default new Vuex.Store({
state:{
  city:defaultcity
  //city:localStorage.city||'哈哈'
  //需要缓存上次已经选择了的城市.如果取不到就使用默认的城市
},

不涉及异步操作和批量同步操作时，可以省略actions，组件直接利用commit调用mutations
actions:{
  changecity(ctx,city){
    ctx.commit('changemutationcity',city)//action用commit触发mutations中的方法
  }
},


mutations:{//利用mutation改变公用数据state
  changemutationcity(state,city){//state是所有的公用数据，city是传过来的参数
    state.city=city
    try{
      localStorage.city=city
    }catch(e){}
  }
}

})
*/